package com.rhzy.wnhc.util;


import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * 
* @ClassName: AjaxResult 
* @Description: 封装ajax结果返回 
* @author wenchaoting 
* @date 2015年12月9日 下午5:27:24 
*
 */
@ApiModel
@Data
@Accessors(chain = true)
public class AjaxResult<T> {

	// 标记成功失败，默认200：成功，401：失败、用于alert，2：失败、用于confirm
	@ApiModelProperty("状态码 200 成功 401失败")
	private int code = 200;

	// 返回的中文消息
	@ApiModelProperty("返回说明")
	private String msg;


	@ApiModelProperty("返回的数据")
	private T data;


	/**
	 *失败时携带的提示信息
	 * @param message
	 * @return
	 */
	public static AjaxResult addError(String message) {
		return createAjaxResult(message).setCode(401);
	}
	/**
	 * 成功时携带的数据
	 * @param data
	 * @return AjaxResult
	 */
	public static AjaxResult addSuccess(Object data) {
		return addSuccess(data,"操作成功！");
	}

	/**
	 * 成功时默认携带的提示信息
	 * @return
	 */
	public static AjaxResult addSuccess() {
		return createAjaxResult("操作成功");
	}
	/**
	 * 成功时携带提示信息
	 * @param msg
	 * @return
	 */
	public static AjaxResult addSuccess(String msg) {
		return createAjaxResult(msg);
	}

	/**
	 * 成功时携带数据和提示信息
	 * @param data
	 * @param msg
	 * @return
	 */
	public static AjaxResult addSuccess(Object data,String msg) {
		return createAjaxResult(data,msg);
	}
	private static AjaxResult createAjaxResult(String msg){
		AjaxResult result=new AjaxResult();
		result.setMsg(msg);
		return result;
	}

	private static AjaxResult createAjaxResult(Object data,String msg){
		AjaxResult result=new AjaxResult();
		result.setMsg(msg);
		result.setData(data);
		return result;
	}

}
